package fr.demos.cinepantin;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Entity;

import fr.demos.cinepantin.enumerate.Anciennete;
import fr.demos.cinepantin.enumerate.Categorie;
import fr.demos.cinepantin.enumerate.Tva;

/**
 * 
 * @author CQP-DNT
 * Classe Livre
 *
 */
@Entity
public class Livre extends Article implements Serializable {

	private String isbn; // obligatoire + immuable //isbn=ID Livre
	private String auteur; // obligatoire
	// private String DateParution; //obligatoire
	// Attributs facultatif
	private String edition;

	protected Livre() {

	}

	public Livre(String isbn, String titre, String auteur, String edition,
			String resume, Anciennete anciennete, int anneeDeSortie, Tva tva,
			Double prixVente, int stock) {
		super(titre, resume, anciennete, anneeDeSortie, tva,Categorie.LIVRE, prixVente, stock);

		this.isbn = isbn;
		this.auteur = auteur;
		this.edition = edition;

	}

	public Livre(String titre, String auteur, String edition,String resume, Anciennete anciennete,
			int anneeDeSortie, Tva tva, double prixVente,
			int stock) {
		super(titre, resume, anciennete, anneeDeSortie, tva,Categorie.LIVRE, prixVente, stock);
		this.auteur = auteur;
		// this.DateParution = DateParution;
		this.edition = "Pas d'editeur pour l'instant";
	}

	// // MODIFICATEURS, SERVICES
	// public void retirerDuStock(int nb)throws ExceptionStock {
	// if(nb > this.stock) {
	// throw new ExceptionStock(this, this.stock, nb);
	// }
	// this.stock -= nb ;
	// }
	// public void rajouterAuStock(int nb) {
	// this.stock += nb ;
	// }
	//
	// public String toString(){
	// return this.titre +
	// " (" + this.nISBN + ") "
	// + this.auteurs ;
	// }

	
		

	public String getAuteur() {
		return auteur;
	}


	@Override
	public int hashCode() {
		final int prime = 31;
		int result = super.hashCode();
		result = prime * result + ((auteur == null) ? 0 : auteur.hashCode());
		result = prime * result + ((edition == null) ? 0 : edition.hashCode());
		result = prime * result + ((isbn == null) ? 0 : isbn.hashCode());
		return result;
	}

//	@Override
//	public boolean equals(Object obj) {
//		if (this == obj)
//			return true;
//		if (!super.equals(obj))
//			return false;
//		if (getClass() != obj.getClass())
//			return false;
//		Livre other = (Livre) obj;
//		if (auteur == null) {
//			if (other.auteur != null)
//				return false;
//		} else if (!auteur.equals(other.auteur))
//			return false;
//		if (edition == null) {
//			if (other.edition != null)
//				return false;
//		} else if (!edition.equals(other.edition))
//			return false;
//		if (isbn == null) {
//			if (other.isbn != null)
//				return false;
//		} else if (!isbn.equals(other.isbn))
//			return false;
//		return true;
//	}

	public void setAuteur(String auteur) {
		this.auteur = auteur;
	}

	public String getEdition() {
		return edition;
	}

	public void setEdition(String edition) {
		this.edition = edition;
	}

	public String getIsbn() {
		return isbn;
	}

	public void setIsbn(String isbn) {
		this.isbn = isbn;
	}

}
